package com.kimu.product_service_interface.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kimu.product_service_interface.entity.Product;

public interface ProductService {

    /*
     * 新增一个商品
     */
    int createProduct(Product product);
    
    /*
     * 获取一个商品，根据id获取
     */
    Product getProductById(Long id);

    /*
     * 修改一个商品，使用部分更新，如果某个字段为null则不更新
     */
    int updateProduct(Product product);

    /*
     * 删除一个商品，使用逻辑删除，将is_deleted字段设置为true
     */
    int deleteProductById(Long id);

    /*
     * 分页查询
     */
    IPage<Product> getProducts(Page<Product> page);

    /*
     * 获取一些商品，使用大模型+RAG来完成这个功能
     */
    List<Product> getProductsByAI(String keyword);

    /*
     * 查询一个商品，同时加载最新评论，此方法可以节省一次http连接
     * 使用CompletableFuture实现这个功能
     */
    Map<String, Object> getProductCascade(Long id);
}
